# {} 单个值就是一个集合，无序，不重复
a = {1, 2, 3, 4, 2, 3}
print(a)
# {}表示空字典，这种表示空集合
b = set()

# 增删
a.add('aa')
print(a)
a.pop()
print(a)
a.remove(3)
print(a)

# 集合与迭代对象的拼接，union 不改变原有的集合，返回拼接结果,update直接拼接原有集合
# result = a.union({'王五', '赵四'})
result = a.union(['王五', '赵四'])
print(result)

# a.update({'张三', '李四'})
a.update(('张三', '李四'))
print(a)
# a.clear()

# 运算符,+不能作为两个集合的运算符
b = {1, 2, 3, 4}
c = {3, 4, 5, 6}

# 集合间的差集
print(b - c)
print(c - b)
# 集合间的交集
print(b & c)
# 集合间的并集
print(b | c)
# 集合间差集的并集
print(b ^ c)

# eval内置函数可以将字符串里的代码执行
s = '1+1'
print(eval(s))

# json
import json

d = {1: 2, 2: 3, 4: 5}

e = (1, 2, 3, 4)

# 集合不能使用json.dumps()转为合法的json字符串
# f = {'a','b','c'}

str1 = json.dumps(d)
str2 = json.dumps(e)
print(str1, str2, type(str1), type(str2))

# 外层是双引号，里层是单引号的字符串还不能解析了！
str3 = '{"hello":"world"}'

json_obj1 = json.loads(str3)
print(json_obj1, type(json_obj1))
